package com.dhecp.project.storage.mapper;

import com.dhecp.core.genericDao.GenericDao;
import com.dhecp.project.storage.domain.StockControl;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

public interface StockControlMapper extends GenericDao<StockControl, String> {


    StockControl findByMultiparameter(Map<String, Object> params);

    //根据入库信息获取库存
    List<StockControl> findByRKBid(String rkBid);

    //根据商品编码获取库存
    List<StockControl> findByCode(@Param("productCode")String productCode, @Param("vGsBm")String vGsBm);

    //根据商品编码获取库存 过滤精品区
    List<StockControl> findByCode3(@Param("productCode")String productCode, @Param("vGsBm")String vGsBm, @Param("warehouse")String warehouse);

    Integer sumProductNumByCodeAndHw(Map<String, Object> params);

    List<StockControl> findByCodeAndHw(Map<String, Object> params);

    StockControl findByCode2(Map<String, Object> params);

    /**
     * 通过组合编码获取唯一值
     * @param productCode 商品编码
     * @param locationHw 货位编码
     * @param vGsBm 公司编码
     * @return
     */
    StockControl findByCodeUnion(@Param("productCode")String productCode, @Param("locationHw")String locationHw, @Param("vGsBm")String vGsBm);

    //根据GUID获取库存
    StockControl findByGuid(@Param("guid")String guid);

    BigDecimal sumProductNumByProductCodeAndVGsBmForCalfully(@Param("productCode")String productCode, @Param("vGsBm")String vGsBm, @Param("gDepot")String gDepot, @Param("vHw")String vHw);

    int deleteStockControl(String guid);

    //根据入库信息获取库存
    List<StockControl> listByRkGuid(String rkGuid);
}
